;子程序名：F2T10
;功能：将AX/EAX中的有符号二进制数以十进制形式在显示器上输出
;入口参数：AX/EAX--存放待转换的有符号二进制数，DX--存放32位有符号二进制数的标志
;出口参数：转换后的带符号的十进制数在显示器上输出
;所用寄存器：EBX--用来存放基数10
;SI--用来作十进制数ASCII码存储区的指针
;调用子程序名：RADIX

PUBLIC F2T10

.386
DATA  SEGMENT   USE16
BUF  DB  12DUP(?)
DATA  ENDS

CODE  SEGMENT  USE16
            ASSUME  CS:CODE , DS:DATA
F2T10  PROC  FAR
            PUSH  SI
            PUSH  EBX
            LEA  SI,  BUF
            CMP  DX,  32
            JNE  B
            MOVSX  EAX,  AX
B:
            OR  EAX,  EAX
            JNS  PLUS
            NEG  EAX
            MOV  BYTE  PTR[SI],  '-'
            INC  SI
PLUS:
            MOV  EBX,  10
            CALL  RADIX
            MOV BYTE PTR[SI],  '$'
            LEA DX,  BUF
            MOV  AH,  9
            INT  21H
            POP  SI
            POP  EBX
RET
F2T10  ENDP

RDAIX  PROC
             PUSH  CX
             PUSH  EDX
             XOR  CX,  CX
LOP1:
             XOR  EDX,  EDX
             DIV  EBX
             PUSH  DX
             INC  CX
             OR  EAX,  EAX
             JNZ  LOP1
LOP2:
             POP  AX
             CMP  AL,  10
             JB  L1
             ADD  AL,  7
L1:S
             ADD  AL,  30H
             MOV  [SI],  AL
             INC  SI
             LOOP  LOP2
             POP  EDX
             POP  CX
RET
RADIX  ENDP
CODE ENDS